// request.js

function http(url, method = 'GET', data = {}) {
  return new Promise((resolve, reject) => {
    const token = uni.getStorageSync('token') || ''
    const baseUrl = uni.$baseUrl || ''

    uni.request({
      url: baseUrl + url,
      method: method,
      data: data,
      header: {
        'x-csrf-token': token
      },
      success(res) {
        const { statusCode, data } = res

        if (statusCode === 200) {
          if (data.code === 200) {
            // 特殊处理：Token 失效
            if (data.msg === '无效token') {
              uni.navigateTo({ url: '/pages/views/login' })
              return reject(new Error('登录失效，请重新登录'))
            }

            
          } else {
            // 后端自定义错误码处理
            uni.showToast({
              title: data.msg || '请求失败',
              icon: 'none'
            })
            // reject(new Error(data.msg || '业务错误'))
          }
		  
		  resolve(res) // 正常返回
        } else {
          // HTTP 状态错误处理
          uni.showToast({
            title: `请求失败：${statusCode}`,
            icon: 'none'
          })
          reject(new Error(`HTTP 状态错误：${statusCode}`))
        }
      },
      fail(error) {
        // 网络层错误
        uni.showToast({
          title: '网络异常，请稍后重试',
          icon: 'none'
        })
        reject(error)
      }
    })
  })
}

export default http
